package com.integral.biz.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.alibaba.druid.util.StringUtils;
import com.integral.biz.IUserRelationBiz;
import com.integral.entity.UserRelation;
import com.integral.entity.UserType;
import com.integral.service.UserRelationService;
import com.integral.service.UserTypeService;
import com.integral.vo.UserRelationVo;

/**
 * @Description: 提成结算关系表BIZ实现类
 * @author zhaofan
 * @date 2018年05月08日 上午01:10:16
 */
@Service("userRelationBiz")
public class UserRelationBiz implements IUserRelationBiz {
	
	/**
	 * 注入提成结算关系表Service
	 */
	@Resource
	private UserRelationService userRelationService;
	/**
	 * 注入用户类别
	 */
	@Resource
	private UserTypeService userTypeService;
	
	/**
	 * @Description: 新增提成结算关系表
	 * @param userRelation
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:10:16
	 */
	public int addUserRelation(UserRelation userRelation) {
		return userRelationService.addUserRelation(userRelation);
	}
	
	/**
	 * @Description: 修改提成结算关系表
	 * @param userRelation 提成结算关系表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:10:16
	 */
	public int updateUserRelation(UserRelation userRelation) {
		return userRelationService.updateById(userRelation);
	}
	
	/**
	 * @Description: 删除提成结算关系表
	 * @param id 主键
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:10:16
	 */
	public int deleteUserRelation(Long id) {
		return userRelationService.deleteById(id);
	}
	
	/**
	 * @Description: 根据ID查询提成结算关系表
	 * @param id 主键
	 * @return 提成结算关系表
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:10:16
	 */
	public UserRelation findById(Long id) {
		return userRelationService.findById(id);
	}
	/**
	 * 查询结算关系总记录数
	 * @param userRelationVo
	 * @return
	 */
	public Long findUserRelationCount(UserRelationVo userRelationVo){
		return userRelationService.findUserRelationCount(userRelationVo);
	}
	/**
	 * 查询结算关系
	 * @param userRelationVo
	 * @return
	 */
	public List<UserRelationVo> findUserRelation(UserRelationVo userRelationVo){
		List<UserRelationVo> list = userRelationService.findUserRelation(userRelationVo);
		for (UserRelationVo userRelationVo2 : list) {
			//类别编码转换
			codeTransform(userRelationVo2);
		}
		return list;
	}
	/**
	 * 类别编码转换
	 * @param userRelationVo
	 */
	private void codeTransform(UserRelationVo userRelationVo){
		//下级类别编码转换
		if(!StringUtils.isEmpty(userRelationVo.getSubordinateTypeCode())){
			UserType userType = userTypeService.findByCode(userRelationVo.getSubordinateTypeCode());
			if(null != userType){
				userRelationVo.setSubordinateTypeCodeName(userType.getUserTypeName());
			}
		}
		//上级类别编码转换
		if(!StringUtils.isEmpty(userRelationVo.getSuperiorTypeCode())){
			UserType userType = userTypeService.findByCode(userRelationVo.getSuperiorTypeCode());
			if(null != userType){
				userRelationVo.setSuperiorTypeCodeName(userType.getUserTypeName());
			}
		}
	}

}